package com.shenghui.enterprise.utils;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import javax.servlet.http.HttpServletRequest;
import java.util.Map;
public class ServiceUtil {
	private ServiceUtil(){}

	private static Integer page=1;
	private static Integer rows=20;

	private static final Log log = LogFactory.getLog(ServiceUtil.class);

	public static Integer getPageSize(Integer defaultPageSize, Map map, HttpServletRequest request) {
		if (!GeneralUtil.isNull(map.get("pageSize"))) {
			return Integer.parseInt(map.get("pageSize").toString());
		} else if (!GeneralUtil.isNull(request) && !GeneralUtil.isNull(request.getParameter("pageSize"))) {
			return Integer.parseInt(request.getParameter("pageSize").toString());
		}
		return defaultPageSize;
	}

	public static Integer getPageNo(Integer defaultPageNo, Integer pageSize, Map map, HttpServletRequest request) {
		if (!GeneralUtil.isNull(map.get("pageNo"))) {
			return Integer.parseInt(map.get("pageNo").toString());
		} else if (!GeneralUtil.isNull(request) && !GeneralUtil.isNull(request.getParameter("pager.offset"))) {
			Integer offset = Integer.parseInt(request.getParameter("pager.offset").toString());
			Integer pageNo = offset / pageSize + 1;
			return pageNo;
		} else if (!GeneralUtil.isNull(request) && !GeneralUtil.isNull(request.getParameter("pageNo"))) {
			return Integer.parseInt(request.getParameter("pageNo").toString());
		}
		return defaultPageNo;
	}

	public static Integer getPageSize(Integer defaultPageSize, Map map) {
		if (!GeneralUtil.isNull(map.get("pageSize"))) {
			return Integer.parseInt(map.get("pageSize").toString());
		}
		return defaultPageSize;
	}

	public static Integer getPageNo(Integer defaultPageNo, Map map) {
		if (!GeneralUtil.isNull(map.get("pageNo"))) {
			return Integer.parseInt(map.get("pageNo").toString());
		}
		return defaultPageNo;
	}

	public static Integer getPageSize( Map map) {
		if (!GeneralUtil.isNull(map.get("pageSize"))) {
			return Integer.parseInt(map.get("pageSize").toString());
		}
		if (!GeneralUtil.isNull(map.get("limit"))) {
			return Integer.parseInt(map.get("limit").toString());
		}
		return rows;
	}

	public static Integer getPageNo(Map map) {
		if (!GeneralUtil.isNull(map.get("pageNo"))) {
			return Integer.valueOf(map.get("pageNo").toString());
		}
		if (!GeneralUtil.isNull(map.get("page"))) {
			return Integer.valueOf(map.get("page").toString());
		}
		return page;
	}

	public static Integer getDefaultPageSize(Integer defaultPageSize) {
		if (!GeneralUtil.isNull(defaultPageSize)) {
			return defaultPageSize;
		}
		return 20;
	}
}
